home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-06
/
btr515.exe
/
BTR515.TXT
< prev
next >
Wrap
Text File
|
1993-07-02
|
54KB
|
1,584 lines
Filename: BTR515.TXT
Products: Btrieve NLM v5.15
Btrieve VAP v5.15
Date: JULY 2 1992
This file accompanies the NLM and VAP environment patches for Btrieve
v5.15 programs.
****************** NOTICE ***********************
This is the last patch release for Btrieve NLM version 5.15. Btrieve
NLM version 5.15 is no longer the current version of the Btrieve NLM
and Novell is only updating the most current version of the Btrieve
NLM.
This patch set does not contain patches for Btrieve requesters.
Instead, version replacement modules have been included in the
file BTRREQ.EXE. BTRREQ.EXE contains the latest requesters for
DOS, Windows, OS/2, and UnixWare. The latest requester should be
use with all 5.x versions of the VAP and NLM and all 6.x versions
of the NLM.
See the BTRREQ.TXT file contained in BTRREQ.EXE for details.
***************************************************
============================================================================
Disclaimer
==========
Novell, Inc. makes no representations or warranties with respect to any
NetWare software, and specifically disclaims any express or implied
warranties of merchantability, title, or fitness for a particular
purpose.
Distribution of any NetWare software is forbidden without the express
written consent of Novell, Inc. Further, Novell reserves the right to
discontinue distribution of any NetWare software.
Novell is not responsible for lost profits or revenue, loss of use of
the software, loss of data, costs of re-creating lost data, the cost of
any substitute equipment or program, or claims by any party other than
you. Novell strongly recommends a backup be made before any software is
installed. Technical support for this software may be provided at the
discretion of Novell.
============================================================================
Contents
========
Patch File Information
Installation Procedure
Source File Information
Patch Set Descriptions
============================================================================
Patch File Information
======================
Patch Set Filename: BTR515.EXE
Date: 4/19/93
Files Included:
BTR515 DOC This file
PATCH515 CMD 2366 09-04-92 11:16a
BPATRTRN 515 1019 09-04-92 11:16a
BPATRTRV 515 255 09-04-92 11:16a
BPATNLM 515 18941 04-09-93 12:51p
PI EXE 33520 09-04-92 11:16a
PATCH515 BAT 2366 09-04-92 11:16a
BPATVAP 515 9088 04-15-93 12:23p
============================================================================
Installation Procedure
======================
The installation procedure for the Btrieve v5.15 patch set is as
follows:
1. Copy all the files to the directory on your system that contains the
files to be patched, and make this the default directory.
2. Ensure that PI.EXE is available on the system. PI.EXE is a patch
utility that Novell provides to install product patches. You can
use PI.EXE in DOS or OS/2 environments.
CAUTION: Make sure you are patching the original (unpatched),
released version of the software, since PI.EXE cannot
patch a patched version. Refer to the following section,
"Source File Information," for a list of the original
files.
The first time you patch the ORIGINAL software, the patch
utility renames these files using the .ORG extension.
3. Run the batch or files files relevant to your situation:
PATCH515.BAT Corrects the VAP and NLM versions under DOS
PATCH515.CMD Corrects the VAP and NLM versions under OS/2
============================================================================
Source File Information
=======================
To ensure you are patching the original files, compare the files to be
patched with the following list, which shows the byte size and the date
and time stamps for the original releases:
Source File Size Original Date Time
----------- ---- ------------- ----
BSERVER VAP 132015 1-24-91 5:49p
BROUTER VAP 12860 1-31-91 10:21a
BROUTER NLM 15884 1-24-91 11:38a
BTRIEVE NLM 64616 2-19-91 11:22a
============================================================================
Patch Set Descriptions
======================
This section describes each patch in the patch set. For each patch, the
description includes one or more keywords that may help you quickly
determine whether the patch you need for a specific problem is included
in this patch set.
* * * * * * * * *
Patch Number: 1
Platform/Product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: INDEX, SUPPLEMENTAL, EXTENDED, NULL
Problem Fixed by This Patch:
When Btrieve creates a supplemental index using a null key and an
extended key type, if the null value is an even number, Btrieve does not
recognize the extended key type. Instead, it uses the third bit of the
key flags word to flag the key as either binary or string.
* * * * * * * * *
Patch Number: 2
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: UPDATE, INSERT, GET POSITION, COMPRESSED, DUPLICATE
Problem Fixed by This Patch:
This patch corrects a problem that causes positioning to be lost after
you perform an Update operation on a file with compressed records.
Performing a Get Position operation causes Btrieve to return a Status 8
(Invalid Positioning); a Get Next operation skips to the next key value,
ignoring the next duplicate, if any exist. Similarly, after an Insert
operation is performed on a file with a compressed record, a Get
Previous operation skips to the previous key value, instead of the
previous duplicate, if any exist.
* * * * * * * * *
Patch Number: 3
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: POSITION, DELETE, STEP FIRST, STEP PREVIOUS
Problem Fixed by This Patch:
This patch corrects a problem that sometimes occurs when a Step Previous
operation follows a Step First operation and a Delete operation, causing
Btrieve to return a Status 80 (Conflict) because positioning has been
lost on the failed Step Previous operation. This patch restores
positioning.
* * * * * * * * *
Patch Number: 4
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: TTS, PRE-IMAGE
Problem Fixed by This Patch:
This patch fixes a problem causing systems using the Transaction
Tracking System (TTS) under heavy load to intermittently return a Status
14 (Pre-Image Open Error). Access problems continue until the file is
closed and reopened. The problem does not occur when the BSPXCOM -W
parameter is set to 1. This patch implements a semaphore to control
TTS task switching.
* * * * * * * * *
Patch Number: 5
Platform/Product: Btrieve VAP - BSERVER.VAP, v5.15; BROUTER.VAP, v5.15
Btrieve NLM - BTRIEVE.NLM, v5.15; BROUTER.NLM, v5.15
Not included in the patch set is a patch for:
Btrieve Requesters (DOS) - BREQUEST.EXE, v5.16;
(OS/2) - BTRCALLS.DLL, v5.17
This problem is source fixed in the 6.0 requesters
contained in this patch kit.
Keywords: EXTENDED, INSERT, BUFFER
Problem Fixed by This Patch:
After an Extended Insert operation, Btrieve should pass back the data
buffer with a count of records successfully inserted in the first word
of the buffer. This patch corrects a problem that prevents the data
buffer from being sent to the application if an Extended Insert returns
a nonzero status.
* * * * * * * * *
Patch Number: 6
Platform/Product: Btrieve NLM - BROUTER.NLM, v5.15
Keywords: BROUTER, REMOTE, BUFFER, LENGTH
Problem Fixed by This Patch:
When you use BROUTER to access a remote server, it fails to update the
application's data buffer length parameter. This patch enables the
update.
* * * * * * * * *
Patch Number: 7
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: UPDATE, DELETE, CONFLICT
Problem Fixed by This Patch:
When you perform an Update or Delete operation, you may receive a Status
80 (Conflict) even though only one workstation is accessing the file.
This problem occurs only if the record you are updating or deleting
contains a data pattern in which all bytes except the first four are
binary zeros.
* * * * * * * * *
Patch Number: 9
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: UPDATE, GET NEXT
Problem Fixed by This Patch:
When two clients are pointing to the same record in a file and one of
them performs an Update operation that changes its key, the second
client receives an unpredictable, out-of-sequence record the next time
it performs a Get Next operation. This patch invalidates the second
client's current record but leaves the next and previous pointers
unchanged to maintain the relative position for the second client.
* * * * * * * * *
Patch Number: 10
Platform/Product: Not included in the patch set is a patch for:
Btrieve Requester (DOS) - BREQUEST.EXE, v5.16
This problem is source fixed in the 6.0 requester
contained in this patch kit.
Keywords: SPX, ESTABLISH CONNECTION, SEGMENT
Problem Fixed by This Patch:
Due to incorrect segment usage in the SPXEstablish-Connection library
call, 2 bytes of the caller's data area are overwritten whenever a new
connection is made to a Btrieve server. This patch corrects the
segment.
* * * * * * * * *
Patch Number: 11
Platform/Product: Btrieve NLM - BROUTER.NLM, v5.15
Not included in the patch set is a patch for:
Btrieve Requester (DOS) - BREQUEST.EXE, v5.16
This problem is source fixed in the 6.0 requester
contained in this patch kit.
Keywords: BUFFER, GET, STEP NEXT
Problem Fixed by This Patch:
This patch corrects a problem in Patch #5 that returns corrupt data in
the data buffer after any Get or Step Next operation returns a Status 9
(End of File).
* * * * * * * * *
Patch Number: 12
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: PROTECTION CHECK, INTERRUPT, UNLOAD
Problem Fixed by This Patch:
This patch corrects a problem that causes protection-check NLMs to
interrupt when the Btrieve NLM is unloading. The interruption occurs
because of data being written to a byte of memory that has just
been freed. This patch uses other memory to prevent this interruption.
* * * * * * * * *
Patch Number: 13
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: ARCNET, VAP, SAP, ADVERTISER
Problem Fixed by This Patch:
When all workstations are shut down on an ArcNet network, the VAP
operating system returns an error to all VAPs using the Service
Advertising Protocol (SAP). This causes BSERVER to issue an Error Log
message of "Send Failure in Advertiser." This patch prevents the error
message from being sent. The patch is normally commented out, since
BSERVER issues this error message only on the ArcNet, but may be enabled
by ArcNet users who find their error logs becoming congested by the
error message.
* * * * * * * * *
Patch Number: 14
Platform/Product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: STATUS 2, TASK, TTS
Problem Fixed by This Patch:
With multiple workstations involved in transactions, a client can
receive erratic and nonrepeatable Status 2s (I/O Error) on operations
ranging from OPENs to GETs. Btrieve returns a Status 2 because a client
has opened the file to a Transaction Tracking System (TTS) task and then
closed the file for rotation (due to limited handles).
The initial client must reopen the file on the next access, but only
that client, as the owner task, can do so; all other tasks get errors
that translate to Status 2. The problem disappears as soon as the first
client accesses or ends the transaction. This patch allows other
clients to temporarily assume the right task number.
* * * * * * * * *
Patch Number: 16
Platform/Product: Btrieve VAP - BTRIEVE.VAP, v5.15
Keywords: STAT, ZERO
Problem Fixed by This Patch:
The STAT command may erroneously return zero for unused pages whenever
the number is greater than 32 KB (32768). This patch forces a nonzero
return.
* * * * * * * * *
Patch Number: 17
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: UPDATE, GET PREVIOUS
Problem Fixed by This Patch:
Btrieve v5.10 patch #9 causes the following problem: after an Update
operation that changes a record's key value, a subsequent Get Previous
operation skips any records whose key value is a duplicate of the new
key value of the record that was just changed. This patch corrects the
problem so that the Get Previous operation does not skip records with
duplicate key values.
* * * * * * * * *
Patch Number: 19
Platform/Product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: UPDATE, GET NEXT
Problem Fixed by This Patch:
When two clients are pointing to the same record in a file and one of
them performs an Update operation that changes its key, the second
client receives an unpredictable, out-of-sequence record the next time
it performs a Get Next operation. This patch invalidates the second
client's current record but leaves the next and previous pointers
unchanged to maintain the relative position for the second client.
* * * * * * * * *
Patch Number: 20
Platform/Product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: SUPPLEMENTAL, INDEX, ACCELERATED, DUPLICATE, INFINITE
Problem Fixed by This Patch:
This patch corrects a problem that causes Btrieve to enter an infinite
loop if you build a supplemental index on a file opened in accelerated
mode, and if Btrieve detects a duplicate key value in the opened file
when the supplemental index specifies that duplicates are not allowed.
* * * * * * * * *
Patch Number: 21
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: LOG, PARSING, VOLUME
Problem Fixed by This Patch:
This patch makes it possible to specify a log file on a different volume
from the data file to be logged. Applying this patch to the Btrieve NLM
corrects filename parsing to allow you to place the log file on any
other volume of the same server.
* * * * * * * * *
Patch Number: 22
Platform/Product: Not included in the patch set is a patch for:
Btrieve Requester (DOS) - BREQUEST.EXE, v5.16
This problem is source fixed in the 6.0 requester
contained in this patch kit.
Keywords: SET DIRECTORY, DIRECTORY ERROR, DRIVE
Problem Fixed by This Patch:
On a Set Directory operation, if you specify only a drive letter and
colon in the key buffer, Btrieve returns a Status 35 (Directory Error)
and the default drive is not changed. This patch corrects the problem
so that the default drive is changed to the drive letter you specify in
the key buffer.
* * * * * * * * *
Patch Number: 23
Platform/Product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: GET POSITION, POSITION, SUCCESSFUL OPERATION
Problem Fixed by This Patch:
If you execute a Get Position operation without first establishing
position, Btrieve returns a Status 0 (Successful Operation) instead of a
Status 8 (Invalid Positioning). The operation also returns a Status 0
when it is performed on an empty file. This patch corrects position
information set by the Open operation.
* * * * * * * * *
Patch Number: 24
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: KEY-BIASED, +50
Problem Fixed by This Patch:
This patch improves Btrieve's performance on key-biased (+50)
operations.
* * * * * * * * *
Patch Number: 25
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: ALTER TABLE, NETWARE SQL, ABEND
Problem Fixed by This Patch:
This patch corrects a problem that abends the server if the "filespec"
string in the data buffer is longer than 64 bytes. The problem is in an
undocumented Btrieve function call that NetWare SQL uses in its Alter
Table statement.
* * * * * * * * *
Patch Number: 26
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: DROP, SUPPLEMENTAL, INDEX, LOCKED
Problem Fixed by This Patch:
This patch corrects a problem that allows a Drop Supplemental Index
operation to proceed on a file locked in a transaction by another user,
disrupting that user's transaction. As in Btrieve for DOS v5.10, this
transaction now returns a Status 85 (File In Use).
* * * * * * * * *
Patch Number: 27
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: REBOOT, FILE, OPEN
Problem Fixed by This Patch:
This patch fixes the following problem: If, after opening a file and
starting a transaction to insert records, you restart your system during
the transaction, the transaction and the file are left open. This
problem occurs because of the BSPXCOM watchdog-reset mechanism fails to
reset the connection.
* * * * * * * * *
Patch Number: 28
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: CREATE, SUPPLEMENTAL, INDEX, ABEND
Problem Fixed by This Patch:
This patch fixes a problem that causes the server to abend when the
Create Supplemental Index operation returns a nonzero status. This
problem is caused by a failure of the drop supplemental index algorithm.
* * * * * * * * *
Patch Number: 29
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: CREATE, SUPPLEMENTAL, INDEX, SKIP, NULL, KEY
Problem Fixed by This Patch:
This patch fixes the following problem: The Create Supplemental Index
operation fails to skip records with null-value keys even though the
manual key flag is set in the key description file.
* * * * * * * * *
Patch Number: 30
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: STATUS, -1, ERROR
Problem Fixed by This Patch:
When multiple users attempt to update the same file, Btrieve may
occasionally return a Status -1 due to an internal error. This patch
prevents this invalid, internal-only error code from being returned.
* * * * * * * * *
Patch Number: 31
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: FREE, SPACE, THRESHOLD
Problem Fixed by This Patch:
This patch fixes a problem with the Free Space Threshold feature. The
NLM starts a new page for variable portions of records before there is
less space left on the page than specified in the free space threshold.
This patch corrects the way the free space threshold is calculated.
* * * * * * * * *
Patch Number: 34
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: STATUS 2, STATUS 15, I/O, ERROR
Problem Fixed by This Patch:
This patch prevents a small timing window produced when many users are
updating, inserting, and deleting data in a file and another user opens
the file. During this timing window, the file can become corrupted,
causing Btrieve to return a Status 2 (I/O Error) and a Status 15
(Pre-Image I/O Error).
* * * * * * * * *
Patch Number: 35
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: KEY-BIASED, +50
Problem Fixed by This Patch:
This patch improves Btrieve's performance on key-biased (+50)
operations.
* * * * * * * * *
Patch Number: 36
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: ABEND, GET GREATER, GET EQUAL
Problem Fixed by This Patch:
This patch prevents a server from abending following a Get Greater or
Equal operation on a particular key value in a corrupted file. This
situation very rarely occurs.
* * * * * * * * *
Patch Number: 37
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: EXTENDED, GET, KEY-ONLY
Problem Fixed by This Patch:
When an Extended Get operation following a key-only operation returns a
Status 9 (End of File), the data buffer may be unchanged or may contain
corrupted data. This patch completes the handling of extended
operations after key-only operations.
* * * * * * * * *
Patch Number: 38
Platform/Product: Btrieve NLM - BROUTER.NLM, v5.15
Not included in the patch set is a patch for:
Btrieve Requester (DOS) - BREQUEST.EXE, v5.16
This problem is source fixed in the 6.0 requester
contained in this patch kit.
Keywords: INSERT, STATUS 22, DATA, BUFFER, LENGTH
Problem Fixed by This Patch:
During an Insert operation, if the data buffer is big enough to contain
the fixed-portion of the record but too small for the entire record,
Btrieve returns a Status 22 (Data Buffer Length) and does not insert the
record. However, the key buffer may be incorrectly altered. This patch
ensures that the key buffer is not altered during unsuccessful Insert,
Insert Extended, and Update operations.
* * * * * * * * *
Patch Number: 39
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: GPI, PRE-IMAGE
Problem Fixed by This Patch:
When a large (32+ KB) pre-image file is produced, as in a large
transaction, a value greater than 32 KB may be erroneously treated as
"signed" and is sign-extended with hex code FFs. This is later
interpreted as an extremely large unsigned value when it is passed to
the operating system, causing a General Protection Interrupt (GPI).
This patch ensures that conversions are performed without sign
extension.
* * * * * * * * *
Patch Number: 40
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: ABEND, HANDLE, CLOSE, READ ONLY, OPEN
Problems Fixed by This Patch:
Erratic Btrieve errors, including a General Protection Interrupt (GPI),
can be caused by the following scenario:
- A file is opened to a single read-only handle that is in the process
of closing.
- A request is received to open another handle in read-write mode,
causing a timing window that allows the file's table entry to be
deleted.
This patch eliminates the timing window.
* * * * * * * * *
Patch Number: 42
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: POSITION, DUPLICATE, SUPPLEMENTAL, INDEX
Problem Fixed by This Patch:
This patch ensures that the correct position is reached when you perform
a Get Next or Get Previous operation following a Delete operation on a
file that contains a supplemental index with duplicate values.
* * * * * * * * *
Patch Number: 43
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: TRANSACTION, FLAG
Problem Fixed by This Patch:
If a Btrieve transaction file exists when you load BTRIEVE.NLM and is
not flagged transactional, BTRIEVE.TRN is not erased when the NLM is
unloaded. This patch ensures that the transaction file is always erased
when BTRIEVE.NLM is unloaded.
* * * * * * * * *
Patch Number: 44
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: TRANSACTION, MODE, NORMAL, READ ONLY, STATUS 85
Problem Fixed by This Patch:
If a file opened in normal mode is used inside a transaction, another
workstation cannot open this file in read-only mode in a transaction.
The Open operation returns a Status 85 (File Locked). This patch allows
the Open operation to be completed successfully.
* * * * * * * * *
Patch Number: 45
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: MODE, ACCELERATED, STATUS 5
Problem Fixed by This Patch:
This patch prevents file corruption on files opened in accelerated mode
that return a Status 5 (Duplicate Key Value) during an Update operation.
Damaged files may not display obvious symptoms of the corruption. (In
the reported case, a key was lost from the B-tree.)
* * * * * * * * *
Patch Number: 46
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: GET DIRECT, DELETE, STATUS 2, STATUS 8, STATUS 9
Problems Fixed by This Patch:
The patch corrects the following problems with the Get Direct operation:
- Performing a Get Direct operation after deletion of the record by
another application returns a Status 2 (I/O Error) instead of a
Status 8 (Lost Position).
- If a file contains records with duplicate values, a Get Next
operation performed after a Get Direct returns a Status 9 (End of
File) instead of the next record.
- The status codes returned by a Get Direct operation following a
Delete operation are inconsistent.
- In certain cases, after deletion of the last record, Get Direct
operations do not return a status code on the record just deleted.
* * * * * * * * *
Patch Number: 47
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: DELETE, STATUS 2
Problem Fixed by This Patch:
In special situations, performing a Delete operation results in either a
Status 2 (I/O Error) or the loss of a key from the B-tree. This patch
prevents key loss and ensures file integrity.
* * * * * * * * *
Patch Number: 48
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: LOG, LOGGING
Problem Fixed by This Patch:
The logging feature of Btrieve can be disabled on some servers. This
patch ensures that logging functions correctly.
* * * * * * * * *
Patch Number: 49
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: STATUS 52, PRE-IMAGE
Problem Fixed by This Patch:
When you open a file that requires recovery from the pre-image file, and
the file has a page size larger than 1024 bytes, you may receive a
Status 52 (Error Writing Cache) if any other file is open. This patch
corrects the problem and adds new logic to Btrieve that helps control
the size of the pre-image file.
* * * * * * * * *
Patch Number: 52
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: STATUS 8, STATUS 80, GET POSITION, UPDATE
Problem Fixed by This Patch:
Building a supplemental index can cause the server utilization to go to
100%, and other workstations making Btrieve calls to receive a Status 95
(Session No Longer Valid). This patch corrects the problem by
decreasing the amount of time Btrieve uses to sort the keys.
* * * * * * * * *
Patch Number: 53
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: STATUS 19, ABEND
Problem Fixed by This Patch:
Reading or updating a corrupted file causes the server to abend. This
patch prevents an abend and returns a Status 19 (Unrecoverable Error).
* * * * * * * * *
Patch Number: 54
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: KEY ONLY, AUTOINC, STATUS 5
Problem Fixed by This Patch:
On a key-only file, if an autoincrement field does not begin at the
first byte, the second insert with a binary zero value in that field
causes Btrieve to return a Status 5 (Duplicate Key). This patch allows
the second insert to succeed and returns a Status 0 (Successful
Completion).
* * * * * * * * *
Patch Number: 55
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: SUPPLEMENTAL INDEX
Problem Fixed by This Patch:
When you add two supplemental indexes and then remove one of them, you
can no longer access the other index. This patch enables you to access
the remaining index.
* * * * * * * * *
Patch Number: 56
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: BREQUEST, READ-ONLY, STATUS 94
Problem Fixed by This Patch:
If you are using BREQUEST.EXE v6.0, attempting to open a file in
read-only mode when you have only Read rights to the file causes Btrieve
to deny the Open operation and return a Status 94 (Permission Error).
This patch allows you to open the file.
* * * * * * * * *
Patch Number: 57
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: KEY-ONLY, GET NEXT EXTENDED, STATUS 19
Problem Fixed by This Patch:
A Get Next Extended operation following a Greater Than Or Equal
operation with key-only bias causes Btrieve to return a Status 19
(Unrecoverable Error). This patch allows the Get Next Extended
operation to succeed with a Status 0 (Successful Completion).
* * * * * * * * *
Patch Number: 58
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: EXTENDED GET, EXTENDED STEP, STATUS 62, STATUS 22
Problem Fixed by This Patch:
In the Btrieve NLM, setting up an Extended Step or Extended Get
operation to return only record positions (NumOfFields = 0) without any
record data causes Btrieve to return a Status 62 (Incorrect Descriptor).
* * * * * * * * *
Patch Number: 59
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: STATUS 80, UPDATE, DELETE
Problem Fixed by This Patch:
If a workstation tries to update or delete a record that a second
workstation has changed since the first workstation read that record,
Btrieve returns a Status 80 (Conflict). However, Btrieve incorrectly
allows the conflict condition to be cleared after the first workstation
performs any of the following operations: Stat, Unlock, Set Owner,
Clear Owner, Create Index, or Drop Index. This patch corrects the
problem by forcing the first workstation to reread the record before
changing it.
* * * * * * * * *
Patch Number: 60
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: HANG, ABEND, TTS
Problem Fixed by This Patch:
When the NetWare Transaction Tracking System (TTS) is performing disk
I/O and detects a hardware error, the TTS dismounts the volume and
Btrieve abends the server. This patch prevents the abend.
* * * * * * * * *
Patch Number: 61
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: ZSTRING, LSTRING, NULL, MANUAL
Problem Fixed by This Patch:
This patch pertains only to zstring and lstring keys that are flagged
with the NULL or MANUAL attribute. If an application updates a record
and changes the key from NULL or MANUAL to non-NULL (or vice versa) by
changing bytes beyond the end of the key from the null character to any
other character (or vice versa), Btrieve does not update the index to
reflect the change in the key. This patch ensures that Btrieve updates
the index.
* * * * * * * * *
Patch Number: 62
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: OPEN, CLOSE, LOOP
Problem Fixed by This Patch:
Btrieve enters an infinite loop when you perform a large number of Open
and Close operations on the same file. This patch enables Btrieve to
handle multiple Open and Close operations and prevents the infinite
loop.
* * * * * * * * *
Patch Number: 63
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: GET NEXT, UPDATE, PATCH 51, PATCH 9
Problem Fixed by This Patch:
Patch #51 reintroduced a problem that an earlier patch (Patch #9 for the
Btrieve NLM) had corrected. The problem is that when two clients are
pointing to the same record in a file and one of them performs an update
operation that changes the record's key, the second client receives an
unpredictable, out-of-sequence record the next time it performs a Get Next
operation.
This patch (#63) invalidates the second client's current record but
leaves the next and previous pointers unchanged, thus maintaining the
relative position for the second client.
* * * * * * * * *
Patch Number: 64
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: KEY-ONLY, STATUS 9, STATUS 19, HANG
Problem Fixed by This Patch:
Get Greater Than(8) or Get Less Than(10) operations do not work
correctly in case of key-only files if the key value specified for
the operation exists in the file. It might return a wrong record or
status 9 or status 19 incorrectly, or it might even cause the server
to hang, depending on the file and the key value involved.
* * * * * * * * *
Patch Number: 65
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: STATUS 37, TRANSACTION, BEGIN, ROLL FORWARD, LOGGING
Problem Fixed by This Patch:
If, having started a transaction, the first operation is an insert and the
record has a duplicate key and logging is active for that file, Btrieve
will erroneously make a second BEGIN_TRANSACTION entry in the log file.
This second entry causes a status 37 when rolling forward the file.
This patch prevents Btrieve from logging the same BEGIN_TRANSACTION twice.
* * * * * * * * *
Patch Number: 66
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: GET DIRECT, GET POSITION, STATUS 43, EXTENED INSERT
Problem Fixed by This Patch:
A GET_DIRECT could return a status 43 right after a successful
GET_POSITION, even though no other workstation deleted the
record. It happened when the EOF had been reached by using STEP or
STEP_EXTENDED operations.
In addition, the logical and physical position information were not set
properly on an EXTENDED_INSERT when one of the inserts failed because of
duplicate keys.
This patch corrects the position information in both cases.
* * * * * * * * *
Patch Number: 67
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: TTS, UPDATE, GET EQUAL, STATUS 7
Problem Fixed by This Patch:
If all patches are applied to the BTRIEVE.NLM and a data file
is flagged transactional (TTS), an update following a Get Equal
returns a status 7 (Different Key Number). The problem was
introduced by patch #49. This patch fixes the problem with patch
#49. Both this patch and patch #49 must be applied together.
* * * * * * * * *
Patch Number: 68
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: DELETE, STATUS 2, STATUS 14, STATUS 15
Problem Fixed by This Patch:
Fixes a bug which appears only under very special circumstances:
If a workstation has no current record in a file (either because it
has just opened the file, or because it has deleted its current record)
and the workstation attempts to get a record with a lock bias, and
the attempt fails because the record is already locked by another user,
and then the workstation makes an Update call, instead of a returning
a status 8 as it should, Btrieve returns either a status 2 or a status
15 (depending on the file's page size). If a status 15 is returned,
and all users of the file then do a Close operation, subsequent attempts
to open the file will fail with a status 14. This patch corrects
the problem.
* * * * * * * * *
Patch Number: 69
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: PREIMAGE, STATUS 2, STATUS 14, STATUS 15
Problem Fixed by This Patch:
Under certain rare conditions, Btrieve fails to recover a file's
preimage after an error that would have returned a status 2. A
status 15 is returned instead, and later attempts to open the file
may fail with a status 14. This patch ensures that the original
status 2 is returned and that the file's preimage is rolled-back.
* * * * * * * * *
Patch Number: 70
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: GET DIRECT, NULL, STATUS 82, STATUS 44
Problem Fixed by This Patch:
If a data file contains a key with both duplicates and a null
attribute, a GET DIRECT (operation 23) on a record with a null key
could give different status codes (status 82 or status 44) depending
on whether the key is a permanent or a supplemental key. This patch
ensures that the proper status code (status 44, null key path) will
always be returned this GET DIRECT.
* * * * * * * * *
Patch Number: 71
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: PREIMAGE, STATUS 14
Problem Fixed by This Patch:
If the machine is turned off or rebooted between the time a Btrieve
file has marked as having a preimage file and the time the preimage
file is created, the file cannot be opened. Btrieve returns status 14.
This patch fixes the problem caused by a timing window, and it ensures
that the file can be opened.
* * * * * * * * *
Patch Number: 72
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: DELETE, GET NEXT, KEY ONLY
Problem Fixed by This Patch:
Doing a Delete (operation 4) followed by a Get Next (operation 6)
on a key-only file with duplicated key values where the key consists
of more than one segment, the given status or record was not the
proper one. This patch ensures that both the status and the record
are correct.
* * * * * * * * *
Patch Number: 73
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: CORRUPT, VARIABLE, STATUS 2, RECOVER
Problem Fixed by This Patch:
Given a file with corruption on the variable pages (specifically
corrupt page number fields), Btrieve would return a status 2,
thwarting efforts to recover the file by using Step Next (or
Step Previous operations) to retrieve undamaged records. This patch
causes Btrieve to return the correct status code, 54 (variable
page error), which in addition to returning the first part of the
record, also advances the position block farther into the file so
that subsequent, undamaged records can be retrieved.
* * * * * * * * *
Patch Number: 74
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: CORRUPT, RETRIEVE, STATUS 2, RECOVER
Problem Fixed by This Patch:
When Stepping through a file with corrupted pages (specifically
corrupt page number fields), Btrieve would sometimes have trouble
returning a record from the first good page read after a series of
bad pages. This patch fixes the problem.
* * * * * * * * *
Patch Number: 75
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: GET LESS, STATUS 9, GET POSITION
Problem Fixed by This Patch:
After an application does a Get Less Than or a Get Less Than
or Equal (opcodes 10 and 11) with an empty file and receives
a status 9 (End of File) error, if it does a Get Position
(operation 22), garbage is returned in the data buffer, instead
of a record address and the status code is set to 0, indicating
no error. This patch ensures that the status code is set to 8,
invalid positioning.
* * * * * * * * *
Patch Number: 76
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: OPERATION 11, GET LESS, POSITION, SUPPLEMENTAL
Problem Fixed by This Patch:
Doing an operation 11 (Get Less or Equal) on a key-only file or on
a file with a supplemental key with duplicates allowed, Btrieve
does not always set the position properly. This patch ensures the
correct positioning in this case.
* * * * * * * * *
Patch Number: 77
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: INSERT, UPDATE, PREIMAGE
Problem Fixed by This Patch:
During insert and update operations, unnecessary key pages are recorded
in the preimage (.PRE) file. This patch corrects the problem.
* * * * * * * * *
Patch Number: 78
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: ACCELERATED MODE, STATUS 5, CORRUPTION
Problem Fixed by This Patch:
This patch prevents file corruption on files opened in accelerated mode
that return a Status 5 (Duplicate Key Value) during an Update operation.
Damaged files may not display obvious symptoms of the corruption. (In
the reported case, a key was lost from the B-tree.)
GROW PATCH
* * * * * * * * *
Patch Number: 79
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: GET DIRECT, DELETE, STATUS 2, STATUS 8, STATUS 9
Problems Fixed by This Patch:
The patch corrects the following problems with the Get Direct operation:
- Performing a Get Direct operation after deletion of the record by
another application returns a Status 2 (I/O Error) instead of a
Status 8 (Lost Position).
- If a file contains records with duplicate values, a Get Next
operation performed after a Get Direct returns a Status 9 (End of
File) instead of the next record.
- The status codes returned by a Get Direct operation following a
Delete operation are inconsistent.
- In certain cases, after deletion of the last record, Get Direct
operations do not return a status code on the record just deleted.
* * * * * * * * *
Patch Number: 80
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: EXTENDED GET, EXTENDED STEP, STATUS 22
Problem Fixed by This Patch:
In the Btrieve VAP, setting up an Extended Step or Extended Get
operation to return only record positions (NumOfFields = 0) without any
record data causes the VAP to return a status 22 if the data buffer is
just as long as required by Btrieve. This patch corrects the
problem so that the data is returned with no error.
* * * * * * * * *
Patch Number: 81
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: EXTENDED FILES, STATUS 14, PREIMAGE, OPEN
Problem Fixed by This Patch:
For extended files, if the machine reboots in the middle of
a transaction, a subsequent open would not be able to open the
file. A status 14 would be returned (preimage open error). This
patch corrects the problem.
* * * * * * * * *
Patch Number: 82
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: STATUS 80, UPDATE, DELETE
Problem Fixed by This Patch:
If a workstation tries to update or delete a record that a second
workstation has changed since the first workstation read that record,
Btrieve returns a Status 80 (Conflict). However, Btrieve incorrectly
allows the conflict condition to be cleared after the first workstation
performs any of the following operations: Stat, Unlock, Set Owner,
Clear Owner, Create Index, or Drop Index. This patch corrects the
problem by forcing the first workstation to reread the record before
changing it.
* * * * * * * * *
Patch Number: 83
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: PATCH 78
Problem Fixed by This Patch:
This patch fixes a problem that was introduced by patch #78. This
patch fixes the problem with patch #78. Both of these patches should
be used to eliminate the original problem mentioned in the patch #78
description.
* * * * * * * * *
Patch Number: 84
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: ZSTRING, LSTRING, NULL, MANUAL
Problem Fixed by This Patch:
This patch pertains only to zstring and lstring keys that are flagged
with the NULL or MANUAL attribute. If an application updates a record
and changes the key from NULL or MANUAL to non-NULL (or vice versa) by
changing bytes beyond the end of the key from the null character to any
other character (or vice versa), Btrieve does not update the index to
reflect the change in the key. This patch ensures that Btrieve updates
the index.
* * * * * * * * *
Patch Number: 85
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: GET NEXT, UPDATE, GET POSITION
Problem Fixed by This Patch:
If a client application receives a status 80 on an Update (because
a second client has Updated the record since the first client
read it), and then the application does a Get Position, an incorrect
status 8 will be returned. This patch fixes the problem so that
a status 0 and a valid record address will be returned from the
Get Position call.
* * * * * * * * *
Patch Number: 86
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: GET EXTENDED
Problem Fixed by This Patch:
This patch implements an enhancement to the GET_EXTENDED API to
allow it to use the current record as the starting point, rather than
the next record. The header signature "UC" must be used instead of the
normal extended get signature, "EG". This enhancement is present in
the NLM without a patch, and is implemented with recent patches in the
DOS, Windows, and OS/2 client Btrieves.
* * * * * * * * *
Patch Number: 87
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: CASE INSENSITIVE, KEY
Problem Fixed by This Patch:
This patch implements an enhancement that allows applications to
define case-insensitive keys by setting the 0x0400 bit in the key
flags word for a Create or Create Supplemental Index call.
But, unpatched or older Btrieve engines may misinterpret and even
corrupt these case-insensitive keys.
* * * * * * * * *
Patch Number: 88
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: GET DIRECT, NULL, STATUS 82, STATUS 44
Problem Fixed by This Patch:
If a data file contains a key with both duplicates and a null
attribute, a GET DIRECT (operation 23) on a record with a null key
could give different status codes (status 82 or status 44) depending
on whether the key is a permanent or a supplemental key. This patch
ensures that the proper status code (status 44, null key path) will
always be returned this GET DIRECT.
* * * * * * * * *
Patch Number: 89
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: PREIMAGE, STATUS 14
Problem Fixed by This Patch:
If the machine is turned off or rebooted between the time a Btrieve
file has marked as having a pre-image file and the time the pre-image
file is created, the file cannot be opened. Btrieve returns status 14.
This patch fixes the problem caused by a timing window, and it ensures
that the file can be opened.
* * * * * * * * *
Patch Number: 90
Platform/product: Btrieve VAP - BSERVER.VAP, v5.15
Keywords: PREALLOCATE, PAGES
Problem Fixed by This Patch:
When a file is created with the preallocation flag set and the file's
page size multiplied by the number of pages to preallocate is an even
multiple of 65536, an additional 65536 bytes are preallocated to the
file. This patch corrects the problem so that only the specified
number of pages are preallocated.
* * * * * * * * *
Patch Number: 91
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: SUPPLEMENTAL INDEX, STATUS 9, NULL
Problem Fixed by This Patch:
When creating a supplemental index where the key has a null value defined
and all the existing records in the file already contain that null value
in the appropriate place, Btrieve returns a status 9 on the create
supplemental index call, and no index is created.
This patch fixes the problem by returning a status zero after creating the
index with zero number of keys in it.
* * * * * * * * *
Patch Number: 92
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: DROP SUPPLEMENTAL INDEX, CORRUPT, OPERATION 31
Problem Fixed by This Patch:
If an application works on several files at the same time and
the pagesizes of those files are greater than 1024 the first page
of one or more files (FCRs) can get corrupted especially if the
Drop Supplemental Index (op. 31) is used. The corruption is usually
located in the second half of the FCR first, but later, doing the same
sequence of operations many times, it moves backwards to the beginning
of the file. In extreme situation the file could become a non-openable
file by Btrieve.
The bug was found in the module where Btrieve opens the file. Actually
not the whole FCR was read then later used, just a part of it. But at
completion the FCR with proper size was written down to the disk
eventually with garbage in it.
This patch ensures that the whole FCR page will be loaded every time
when it is needed.
* * * * * * * * *
Patch Number: 93
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: OWNER NAME, CLEAR OWNER, STATUS 46
Problem Fixed by This Patch:
This bug applied to files with owner names which allowed non-owner
applications to open them, but not to write to them. Btrieve was
incorrectly allowing a Clear Owner operation to complete
successfully after the application opened the file without its owner
name. Now Btrieve will return the proper error code instead: 46,
Access To File Denied.
* * * * * * * * *
Patch Number: 94
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: TRANSACTION, PREIMAGE, LARGE
Problem Fixed by This Patch:
Users whose applications perform a very large number (several
thousand) of writing operations on any one file inside a single
transaction may have been noticing that, during the course of such
a transaction, the associated preimage file's size would jump from
a large number (say 33 megabytes) to a huge number (approaching 4
gigabytes) in an instant, even though there was not 4 gigabytes of
free space on the volume. This patch fixes this sparse file
problem.
* * * * * * * * *
Patch Number: 95
Platform/Product: Btrieve NLM - BTRIEVE.NLM, v5.15
Keywords: TRANSACTION, PREIMAGE, CORRUPT, STATUS 109
Problem Fixed by This Patch:
Transactions which insert, update, or delete several
thousands of records in any one file can cause a 16-bit
counter of pages in the preimage file to overflow. If the
transaction is aborted after the counter has overflowed the
Btrieve file would be corrupted. This patch causes Btrieve
to guard against the overflow, and to return a new error
status code, 109, to any operation which would trigger the
overflow.
** End of BTR515.TXT **